/*
 * Asucar
 * Sabroson
 */

import java.util.ArrayList;

/**
 *
 * @author sempere
 */
/*
package pl;
*/
public class Simbolo {

   public enum TipoRetorno{
		ENTERO,
		REAL,
		BOOLEANO,
		EXCEPCION,
		MAIN,
		OBJETO,
		VOID
	}
	
   public enum ClaseDato {
		VARIABLE,
		CONSTANTE,
		VECTOR,
		METODO,
		CAMPO,
		PARAMETRO	
	}

   public String nombre; 
   public TipoRetorno retorno;
   public ClaseDato clase;
   public boolean usado;
   public TSimbolos tabla;
   public int num;
   public ArrayList<Integer> dims;
   public ArrayList<String> params;
   public boolean privado = false;
   public Simbolo clasePadre = null;

   public Simbolo(String nombre, TipoRetorno tipo, ClaseDato clase, TSimbolos tablaPadre, int numsimbolo){
	this.nombre = nombre;
	this.retorno = tipo;
	this.clase = clase;
	this.tabla = tablaPadre;
	this.dims = new ArrayList<Integer>();
	this.num = numsimbolo;
	
}

   public Simbolo(String nombre, TipoRetorno tipo, ClaseDato clase, TSimbolos tablaPadre, int dims, int numsimbolo){
	this.nombre = nombre;
	this.retorno = tipo;
	this.clase = clase;
	this.tabla = tablaPadre;
	this.dims = new ArrayList<Integer>();
	for(int i=0; i< dims; i++){
		this.dims.add(0);
	}
	this.num = numsimbolo;
}

   public int calculoDims(int n){
	int acum = 1;
	for(int i=n; i< dims.size(); i++){
		acum *= dims.get(i);	
	}
	return acum;
}

	

 
}
